package com.suiwei.advanced.exception;

import org.junit.jupiter.api.Test;

public class Error {

    //栈内存溢出：java.lang.StackOverflowError
    @Test
    void StackOverflowError(){
        method();
    }
    void method(){
        method();
    }

    //堆内存溢出：OutOfMemoryError
    //栈内存：主要用于存储局部变量和方法调用的相关信息；arr 这个变量名是在栈内存
    //堆内存：存储Java中的对象实例，包括数组，使用 new 关键字创建一个对象或数组时，实际的对象数据会存储在堆内存中
    //arr 这个引用存储在栈内存中，而数组 new int[Integer.MAX_VALUE] 实际占用的空间则是在堆内存上分配的
    @Test
    void OutOfMemoryError() {
        int[] arr = new int[Integer.MAX_VALUE];
    }


}
